Skip to content

Implemented Aquacomputer Next Vision coolant temperature reading - #487

Open
420coupe wants to merge 1 commit into
corecoding:mainfrom
420coupe:acvision
Open

Implemented Aquacomputer Next Vision coolant temperature reading#487
420coupe wants to merge 1 commit into
corecoding:mainfrom
420coupe:acvision

Conversation

@420coupe

@420coupe 420coupe commented Jun 8, 2025

Copy link
Copy Markdown

Implemented Aquacomputer Next Vision coolant temperature reading - I was able to decode some of the response using an old visioncli repo as the starting base. There is still a lot of other things that can be decoded from response but 100% certain the current one I'm decoding matches the displayed value for coolant temp on the VISION OLED screen.

Additionally added custom icons for water temp and aio pump, custom icons appear both in the top bar and menu/sub-menu items. Also at first there was no fan speed being displayed until i
sudo modprobe nct6775 and also added that command to /etc/modules-load.d/nct6775.conf so it loads on restart.

edited: added example of vitals with components below
image

@corecoding

Copy link
Copy Markdown
Owner

There are a lot of changes here, including removal of my donation link in the metadata.json. I think the biggest reason for the large diff is your IDE changed ' to ". Can you refactor this diff so it is easier to see the true changes?

@420coupe

Copy link
Copy Markdown
Author

@corecoding There we go, fixed difference in IDE prettier changes. Now you can see just the implementation of AC Next vision.

@420coupe
420coupe force-pushed the acvision branch 2 times, most recently from d57efa2 to e85577b Compare August 16, 2025 22:23
@420coupe

Copy link
Copy Markdown
Author

Ok fixed the whitespace fixes from IDE as well, hence the forced pushes above.

Now correctly displaying just the changes to implement acvision

@420coupe
420coupe force-pushed the acvision branch 2 times, most recently from c2c8e66 to 602d223 Compare June 23, 2026 04:37
@420coupe
420coupe force-pushed the acvision branch 3 times, most recently from 0e78fd4 to c2cbd75 Compare August 5, 2026 05:43
Read coolant temperature from an Aquacomputer Next Vision and give liquid
cooling its own sensor groups, so coolant and pump no longer borrow the
threshold colors of chip temperatures and case fans.

The Vision has no hwmon driver, so the reading comes from raw HID. It is a
composite device that also exposes keyboard and consumer control
interfaces, and only the vendor defined one reports telemetry, so match the
report descriptor usage page as well as the USB vendor and product id.
Reading either of the other interfaces blocks forever because they never
send a report. Telemetry arrives as a 64 byte report with id 0x01 holding
the coolant temperature at offset 0x37, big endian, in hundredths of a
degree.

Coolant runs far cooler than a CPU and a pump far faster than a case fan,
so sharing temperature-colors and fan-colors left their breakpoints
useless. Promote both to entries in sensorCatalog. The preference sidebar,
threshold color editors, changed:: signal wiring and dropdown menu groups
are all derived from that catalog, so each gains a page, a show-* toggle
and a *-colors key. The pump arrives on a fan input and is reassigned to
its own group by label, and fan inputs are now discovered when either group
is enabled.

colorsKeyForSensor() resolved format 'temp' to temperature-colors before
consulting the sensor's group, which made a per group scale impossible.
Check the group first and keep the format fallback so GPU temperatures
still share the temperature scale.

Coolant also gets its own unit. Threshold colors are matched against the
displayed value, so the unit and the breakpoints have to agree. The unit
key is resolved from the catalog, leaving every other temperature source on
the main unit.

Add an 'aggregate' catalog flag marking groups populated by hardware
monitor discovery, replacing the hardcoded group lists in the sensor query
dispatch and in the group average, minimum and maximum block.

sensorGroupFromType() only stripped '-group' and a trailing '#N', so a
suffixed type resolved to itself and missed its catalog entry. Fall back to
the leading segment.

Panel icon margins are declared per sensor type and also zero the padding,
so the new icons inherited the shell's system-status-icon padding and sat
wider apart than the rest. Add matching rules.

Ship water droplet and pump icons in both icon styles, and label several
nct6799 inputs for this board, including the fan7 input the pump reports
through.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants